
/**
 * @file RinexAmbBase.hpp
 * Base class for RINEX clock data file
 * - shjzhang, 2019/09/05
 */

#ifndef GPSTK_RinexAmbBase_HPP
#define GPSTK_RinexAmbBase_HPP

#include <string>
#include "FFData.hpp"
#include "StringUtils.hpp"
#include "CivilTime.hpp"

namespace gpstk
{ 
      /// @ingroup FileHandling
      //@{

   class RinexAmbBase : public FFData
   {
   public:  
         /// Destructor 
      virtual ~RinexAmbBase() {}
      

   protected:
      
         /// Converts a CivilTime object into a Rinex Clock time
         /// Format is 26 characters "yyyy mm dd hh mm ss.ssssss"
         /// If CommonTime == BEGINNING_OF_TIME an all blank string will
         /// be returned.
      std::string writeTime(const CivilTime& dt) const;
      
         /// Converts a 26 character Rinex Clock time in the format 
         /// "yyyy mm dd hh mm ss.ssssss" to a CivilTime object.
         /// If the string is blank a CommonTime::BEGINNING_OF_TIME is returned.
      CivilTime parseTime(const std::string& line) const
         noexcept(false);
      
   };  //  RinexAmbBase
      //@}
   
}  // namespace

#endif
